<%--
 * Título: gestHora. Aplicación web de gestión de horarios para conservatorios.
 * Alumnos:
 * - Javier Pardo Muñoz. I.T. Informática de Gestión
 * - Antonio Prior Cazorla. I.T. Informática de Gestión
 * Director: Dr. José Raúl Romero Salguero.
 *     
 *  Copyright (C) 2013 Javier Pardo Muñoz / Antonio Prior Cazorla
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.

 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
--%>

<%@page import="es.uco.gesthora.business.Configuracion"%>
<%@page import="es.uco.gesthora.business.CopiasDeSeguridad"%>
<%@page import="es.uco.gesthora.business.Noticia"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<jsp:useBean id="MsgBean" class="es.uco.gesthora.interfaz.MsgBean" scope="session"/>

<%
    String tipo = request.getParameter("tipo");
    String URL = "";

    if (tipo.equals("global")) {

        /*Se obtienen todos los datos del formulario de configuración*/
        String servidorBD = request.getParameter("servidorBD");
        String usuarioBD = request.getParameter("usuarioBD");
        String passwordBD = request.getParameter("passwordBD");
        String servidorMail = request.getParameter("servidorMail");
        String puertoMail = request.getParameter("puertoMail");
        String authMail = request.getParameter("authMail");
        String usuarioMail = request.getParameter("usuarioMail");
        String passwordMail = request.getParameter("passwordMail");
        String sslMail = request.getParameter("sslMail");

        /*Se añade la configuración de la BD al properties */
        Configuracion.getInstance().configurarBD(servidorBD, usuarioBD, passwordBD);

        /*Se añade la configuración del mail al properties */
        Configuracion.getInstance().configurarMail(servidorMail, puertoMail, authMail, usuarioMail, passwordMail, sslMail);
        URL = "/jsp/views/configurarViewGlobal.jsp";
        MsgBean.setMsg("Configuración global modificada");

    } else if (tipo.equals("tiempos")) {

        String inicioSolicitudes = request.getParameter("inicioSolicitudes");
        String finSolicitudes = request.getParameter("finSolicitudes");
        String finModificaciones = request.getParameter("finModificaciones");
        Configuracion.getInstance().configurarTiempos(inicioSolicitudes, finSolicitudes, finModificaciones);
        URL = "/jsp/views/configurarViewTiempos.jsp";
        MsgBean.setMsg("Configuración de tiempos modificada");

    } else if (tipo.equals("nuevaNoticia")) {

        boolean resultado = false;
        String titular = request.getParameter("titular");
        String texto = request.getParameter("texto");
        resultado = Noticia.getInstance().nueva(titular, texto);

        if (resultado) {
            URL = "/jsp/views/configurarViewNoticias.jsp";
            MsgBean.setMsg("Noticia añadida correctamente");
        } else {
            URL = "/jsp/views/configurarViewNoticias.jsp";
            MsgBean.setMsg("La noticia no se pudo añadir");
        }

    } else if (tipo.equals("listarNoticias")) {

        String listado = null;
        int portada = 0;
        listado = Noticia.getInstance().listar(portada);
        out.println(listado);

    } else if (tipo.equals("editarNoticia")) {

        boolean resultado = false;
        int id = Integer.parseInt(request.getParameter("idEditar"));
        String titular = request.getParameter("titularEditar");
        String texto = request.getParameter("textoEditar");
        resultado = Noticia.getInstance().modificar(id, titular, texto);

        if (resultado) {
            URL = "/jsp/views/configurarViewNoticias.jsp";
            MsgBean.setMsg("Noticia modificada correctamente");
        } else {
            URL = "/jsp/views/configurarViewNoticias.jsp";
            MsgBean.setMsg("La noticia no pudo ser modificada");
        }

    } else if (tipo.equals("obtenerNoticia")) {

        String resultado = "";
        int id = Integer.parseInt(request.getParameter("id"));
        resultado = Noticia.getInstance().obtener(id);
        out.println(resultado);

    } else if (tipo.equals("eliminarNoticia")) {

        boolean resultado = false;
        int id = Integer.parseInt(request.getParameter("id"));
        resultado = Noticia.getInstance().eliminar(id);

        if (resultado) {
            URL = "/jsp/views/configurarViewNoticias.jsp";
            MsgBean.setMsg("Noticia eliminada correctamente");
        } else {
            URL = "/jsp/views/configurarViewNoticias.jsp";
            MsgBean.setMsg("La noticia no se pudo eliminar");
        }

    } else if (tipo.equals("listarCopiasBD")) {

        String listado = null;
        listado = CopiasDeSeguridad.getInstance().listarCopias();

        if (!listado.isEmpty()) {
            out.print(listado);
        }

    } else if (tipo.equals("crearCopiaBD")) {

        boolean resultado = false;
        String texto = request.getParameter("texto");
        resultado = CopiasDeSeguridad.getInstance().crearCopia(texto);
        
        if (resultado) {
            URL = "/jsp/views/configurarViewCopias.jsp";
            MsgBean.setMsg("La copia de seguridad se ha creado correctamente");
        } else {
            URL = "/jsp/views/configurarViewCopias.jsp";
            MsgBean.setMsg("La copia de seguridad no se pudo crear");
        }

    } else if (tipo.equals("eliminarCopiaBD")) {

        boolean resultado = false;
        int id = Integer.parseInt(request.getParameter("id"));
        String nombreFichero = request.getParameter("fichero");
        resultado = CopiasDeSeguridad.getInstance().eliminarCopia(id, nombreFichero);

        if (resultado) {
            URL = "/jsp/views/configurarViewCopias.jsp";
            MsgBean.setMsg("La copia de seguridad se ha eliminado correctamente");
        } else {
            URL = "/jsp/views/configurarViewCopias.jsp";
            MsgBean.setMsg("La copia de seguridad no se pudo eliminar");
        }

    } else if (tipo.equals("restaurarCopiaBD")) {

        String nombreFichero = request.getParameter("fichero");
        CopiasDeSeguridad.getInstance().importarCopia(nombreFichero);
        URL = "/jsp/views/configurarViewCopias.jsp";
        MsgBean.setMsg("La copia de seguridad se ha restaurado correctamente");

    } else if (tipo.equals("inicializar")) {

        String alumnos = request.getParameter("alumnos");
        String horariosAlumnos = request.getParameter("horariosAlumnos");
        String profesores = request.getParameter("profesores");
        String asignaturas = request.getParameter("asignaturas");
        String secretarios = request.getParameter("secretarios");
        String horariosAsignaturas = request.getParameter("horariosAsignaturas");

        if (alumnos != null) {
            Configuracion.getInstance().inicializar("alumnos");
        }
        if (horariosAlumnos != null) {
            Configuracion.getInstance().inicializar("horariosAlumnos");
        }
        if (profesores != null) {
            Configuracion.getInstance().inicializar("profesores");
        }
        if (asignaturas != null) {
            Configuracion.getInstance().inicializar("asignaturas");
        }
        if (secretarios != null) {
            Configuracion.getInstance().inicializar("secretarios");
        }
        if (horariosAsignaturas != null) {
            Configuracion.getInstance().inicializar("horariosAsignaturas");
        }

        URL = "/jsp/views/configurarViewInicializar.jsp";
        MsgBean.setMsg("Se han inicializado correctamente los datos escogidos");

    }

%>

<%if (!URL.equals("")) {

        response.sendRedirect("/gestHora" + URL);

    }%>